diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2025-05-16 20:33:05 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2025-05-16 20:33:05 -0400 |
| commit | 4e8cfb5f37b607382fb80e012133dd372aa4ec36 (patch) | |
| tree | 47bd3baed1aa18d09b67dbdec846b66cab121c55 /ui/routes/(app)/ch/[channel]/+page.svelte | |
| parent | 96d363fd9290d43d2e6a11e2e5269fb8ccf6d65d (diff) | |
| parent | a38a449ab78a4e8ab56705922f5c13f9365a92a4 (diff) | |
Merge remote-tracking branch 'codeberg/prop/unread-channels'
Diffstat (limited to 'ui/routes/(app)/ch/[channel]/+page.svelte')
| -rw-r--r-- | ui/routes/(app)/ch/[channel]/+page.svelte | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/ui/routes/(app)/ch/[channel]/+page.svelte b/ui/routes/(app)/ch/[channel]/+page.svelte index 33a9bdf..76bb638 100644 --- a/ui/routes/(app)/ch/[channel]/+page.svelte +++ b/ui/routes/(app)/ch/[channel]/+page.svelte @@ -10,9 +10,10 @@ const { session, outbox } = data; let activeChannel; - const channel = $derived(page.params.channel); - const messages = $derived(session.messages.filter((message) => message.channel === channel)); - const unsent = $derived(outbox.messages.filter((message) => message.channel === channel)); + const channelId = $derived(page.params.channel); + const channel = $derived(session.channels.find((channel) => channel.id === channelId)); + const messages = $derived(session.messages.filter((message) => message.channel === channelId)); + const unsent = $derived(outbox.messages.filter((message) => message.channel === channelId)); const deleted = $derived(outbox.deleted.map((message) => message.messageId)); const unsentSkeletons = $derived( unsent.map((message) => message.toSkeleton($state.snapshot(session.currentUser))) @@ -45,9 +46,9 @@ function setLastRead() { const lastInView = getLastVisibleMessage(); - if (lastInView) { - const at = DateTime.fromISO(lastInView.dataset.at); - session.local.updateLastReadAt(channel, at); + const at = !!lastInView ? DateTime.fromISO(lastInView.dataset.at) : channel?.at; + if (!!at) { + session.local.updateLastReadAt(channelId, at); } } @@ -76,7 +77,7 @@ } async function sendMessage(message) { - outbox.postToChannel(channel, message); + outbox.postToChannel(channelId, message); } async function deleteMessage(id) { |
